Wireless communication between electronic devices is increasingly common. One example is a computer in communication with a mouse, keyboard and other peripheral components. To avoid excessive connecting cables and otherwise provide convenience, many mice, keyboard, and other components are now wireless. Although there are several standards for wireless communication, BLUETOOTH is becoming the de facto standard for many applications. Developed by Bluetooth SIG, Inc., the BLUETOOTH wireless specification establishes protocols and standards for two-way wireless communication between electronic devices using relatively low power radio communication. BLUETOOTH is described by, e.g., “Specification of the Bluetooth System” (versions 1.1 and 1.2), “Human Interface Device (HID) Profile version 1.0” and various other documents available from Bluetooth SIG, Inc. at <http://www.bluetooth.com>. Among other things, BLUETOOTH provides for two-way radio links between multiple devices in a short-range radio network called a “piconet.”
A BLUETOOTH piconet typically includes a “master” (e.g., a personal computer) receiving input from one or more “slaves” (e.g., a wireless mouse or a wireless keyboard). A series of inquiry, paging and other messages are then exchanged between the master and slave(s). The BLUETOOTH protocol includes a special provision, called SNIFF, to enable some slave devices to reduce their power consumption below what they would normally consume in “active” mode on a piconet. Such devices are typically those which have modest levels of data flow and which can tolerate response latencies of tens or hundreds of milliseconds. In SNIFF mode, the master periodically polls each slave and requests that the slave send data. In response, each slave may transmit a data packet containing either a transmission of user data or a “NULL” to indicate that the slave has no user data. User data may include, for example, a mouse movement or a button press. The NULL response is necessary so that the master knows the slave is still part of the piconet. While in SNIFF mode, there is typically a longer interval between master and slave communication than is the case with more active communication modes. In between communications, the slave can shut down—“go to sleep”—and thus save power until it is time to receive and respond to the next transmission from the master. However, provision must still be made to recover a possible loss of data from the slave due to interference or similar difficulty. To handle this problem, a second set of slots, adjacent to the first and called “timeout” slots, are provided.
FIG. 1 illustrates BLUETOOTH SNIFF mode. SNIFF slots are time slots determined between the master and the slave and may be any one of a variety of agreed upon length of time or frequency. For purposes of the present invention, the SNIFF slots are referred to as “SNIFF periods” and the timeout slots are referred to as “TIMEOUT periods.” In this example, simplified SNIFF periods and TIMEOUT periods are shown. However, it is understood that the frequency and duration of SNIFF periods and TIMEOUT periods, as well as the number of TIMEOUT periods following a SNIFF period, may vary based on negotiation between the master and the slave devices, for example. An ellipsis is depicted in the figures to illustrate varying numbers of time slots between SNIFF periods, as well as intervening periods between the end of a TIMEOUT period and the next SNIFF period.
The master device (e.g., a computer) and a slave device (e.g., a wireless keyboard or mouse) commence communication at a sniff slot depicted as “SNIFF period 1” in FIG. 1. In the first time slot of SNIFF period 1, the master device polls the slave device by sending a POLL packet to the slave device. In response to the POLL packet from the master device, the slave responds in the second time slot of SNIFF period 1 by either sending a data packet or a “NULL” to the master device. In this example, the slave sends a data packet (Data1) which may contain user data, such as a mouse movement or button press, which is successfully received by the master. The master confirms the successful reception by sending a NULL during the first slot of TIMEOUT period 1. The slave device listens during the first slot of TIMEOUT period 1 following SNIFF period 1. The slave device powers off in the second time slot of TIMEOUT period 1, and remains off until the beginning of the next SNIFF period.
FIG. 1 also illustrates master and slave device communication when a transmission from a slave device is not received at the master device. This example is illustrated in SNIFF period 2 and TIMEOUT period 2 of FIG. 1. In the first time slot of SNIFF period 2, the master device polls the slave device by sending a POLL packet to the slave device (which is powered on) while the slave device listens to the piconet. In response to receiving the POLL packet from the master device, the slave device responds by sending a data packet (Data2) to the master device in the second time slot. In this example, the master device fails to receive the transmission. This failure of transmission may be due to a variety of factors such as, but not limited to, an error in transmission or impaired transmission conditions. Because the transmission was unsuccessful, the master device transmits an ARQ (Automatic Repeat Request) to the slave device. Transmitting an ARQ to the slave device causes the slave device to re-transmit the data packet (Data) in the second time slot of TIMEOUT period 2.
If during a SNIFF period, the master sends a POLL packet to the slave device but the slave device does not have data at that time to transmit to the master device, the slave device may send a NULL packet to the master device. This is illustrated in SNIFF period 3 and TIMEOUT slot 3 of FIG. 1. In this example, the master device polls the slave device by sending a POLL packet to the slave device during the first time slot of SNIFF period 3. In this case, the slave device does not have data to transmit to the master device. Therefore, in response to receiving the POLL packet from the master device, the slave device responds by sending a NULL packet (NULL) to the master device in the second time slot of SNIFF period 3. After the master device receives the NULL packet (NULL) from the slave device, communication between the master device and the slave device terminates. The slave device does not have to listen during the first time slot of TIMEOUT period 3. Because the master device does not transmit as ARQ or other packet to the slave device during the first time slot of TIMEOUT period 3, the slave device powers off during the second time slot of TIMEOUT period 3.
If there is no error in transmission of data from the slave device to the master device during the SNIFF period, there is no need for the slave device to waste power by remaining powered on during the TIMEOUT PERIOD(S). By maintaining power to the slave device during this period, the slave device wastes power. Because the slave device is likely a battery-operated device, battery power may be unnecessarily drained. Thus, there remains a need in the art for eliminating unnecessary power use during timeout.